import WechatAuth from "vue-wechat-auth";
import axios from "axios";
import Vue from "vue";
import Router from 'vue-router'


Vue.use(WechatAuth)
export const wechatAuth = new WechatAuth({
    router, // 路由实例对象
    appid: 'wx3a06c113295b44c3', // 您的微信appid
    responseType: 'code',  // 返回类型，请填写code
    scope: 'snsapi_userinfo', // 应用授权作用域，snsapi_base （不弹出授权页面，直接跳转，只能获取用户openid），snsapi_userinfo （弹出授权页面，可通过openid拿到昵称、性别、所在地。并且，即使在未关注的情况下，只要用户授权，也能获取其信息）
    getCodeCallback (code, next) {
        // 用户同意授权后回调方法
        // code：用户同意授权后，获得code值
        // code说明： code作为换取access_token的票据，每次用户授权带上的code将不一样，code只能使用一次，5分钟未被使用自动过期。
        // next： 无论access_token是否获取成功,一定要调用该方法
        // next说明：next方法接收两个参数
        // 参数1为通过code值请求后端获取到的access_token值，如果获取失败请填入空字符串''
        // 参数2(非必填，默认获取access_token切换到当前路由对象)，指定切换对象 next('/') 或者 next({ path: '/' })
        axios.get('/sns/oauth2/access_token' +
            "?appid=wx3a06c113295b44c3" +
            "&secret=4d0807797b51489dc3be77bac85c9e79"  +
            "&code=" + code +
            '&grant_type=authorization_code' ).then(response => {
            let access_token=response.data['access_token'];
            let openid =response.data['openid'];
            window.localStorage.setItem('openid',openid)

            axios.get('/sns/userinfo' +
                '?access_token=' + access_token +
                '&openid=' + openid +
                '&lang=zh_CN' ).then(response => {
                window.localStorage.setItem('userinfo',JSON.stringify(response.data))
                window.localStorage.setItem('reg',true)

            }).catch(() => {

                next() // ajax出现错误
            })
            next() // 获取access_token失败

        }).catch(() => {
            next() // ajax出现错误
        })
    }
})